/* 
 * File:   Tile.h
 * Author: chb
 *
 * Created on 5. September 2009, 11:51
 */

#ifndef _TILE_H
#define	_TILE_H

#include "View.h"
#include "MapSite.h"
//#include "Map.h"
//#include "Position.h"
#include "Movable.h"

//class Movable;
class MapObject;

class Tile : public MapSite {
public:
    Tile(const unsigned int posX=0, const unsigned int posY=0);
    Tile(const Tile& orig);
    virtual ~Tile();

    virtual void paint(View *v) const;
    virtual void enter(Movable *m);
    virtual MapSite* clone(unsigned int x, unsigned int y) const;
    
    bool isEmpty();
    bool isFull();
    virtual void leave();
    
protected:
    MS_TYPE getType() const;

    MapObject *_content;
    
};

#endif	/* _TILE_H */

